﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Mail;
using System.Net.Mime;
using System.Net;
using System.IO;  

namespace ERPTOOLS.Class
{
    public class MailHelper
    {
        public static bool MailSend(string smtp,string user,string pw,string fromadd,string toname,string toadd,string subject,string body)
        {

                //确定smtp服务器地址。实例化一个Smtp客户端
                System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(smtp);
                //生成一个发送地址
                string strFrom = string.Empty;
                    strFrom = fromadd;

                ////构造一个发件人地址对象
                //MailAddress from = new MailAddress(strFrom, "SCM系统", Encoding.UTF8);
                ////构造一个收件人地址对象
                //MailAddress to = new MailAddress(toadd, toname, Encoding.UTF8);

                ////构造一个Email的Message对象
                //MailMessage message = new MailMessage(from, to);


                    MailMessage message = new MailMessage(); //实例化一个邮件类

                    message.Priority = MailPriority.Normal; //邮件的优先级，分为 Low, Normal, High，通常用 Normal即可

                    message.From = new MailAddress(strFrom, "SCM系统", Encoding.GetEncoding(936));

//收件方看到的邮件来源；

//第一个参数是发信人邮件地址

//第二参数是发信人显示的名称

//第三个参数是 第二个参数所使用的编码，如果指定不正确，则对方收到后显示乱码

//936是简体中文的codepage值

//注：上面的邮件来源，一定要和你登录邮箱的帐号一致，否则会认证失败

                   // message.ReplyTo = new MailAddress("pupei@21cn.com", "我的接收邮箱", Encoding.GetEncoding(936));

//ReplyTo 表示对方回复邮件时默认的接收地址，即：你用一个邮箱发信，但却用另一个来收信

//上面后两个参数的意义， 同 From 的意义

                    message.CC.Add(toadd);

//邮件的抄送者，支持群发，多个邮件地址之间用 半角逗号 分开


                //添加邮件主题和内容
                message.Subject = subject;
                message.SubjectEncoding = Encoding.GetEncoding(936);
                message.Body = body;
                message.BodyEncoding = Encoding.GetEncoding(936);

                //设置邮件的信息
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                message.BodyEncoding = System.Text.Encoding.GetEncoding(936);
                message.IsBodyHtml = true;

                //如果服务器支持安全连接，则将安全连接设为true。
                //gmail支持，163不支持，如果是gmail则一定要将其设为true
                if (smtp == "smtp.21cn.com")
                    client.EnableSsl = false;
                else if (smtp == "smtp.gmail.com")
                    client.EnableSsl = true;

                //设置用户名和密码。
                //string userState = message.Subject;

                string username = user;
                string passwd = pw;
                //用户登陆信息
                NetworkCredential myCredentials = new NetworkCredential(username, passwd);
                client.UseDefaultCredentials = false;
                client.Credentials = myCredentials;
                //发送邮件
                client.Send(message);
              
                return true;
      
        }
        
    }
}
